package cn.pzhuWEB.llk.dao;

import cn.pzhuWEB.llk.entity.ImagePath;
import cn.pzhuWEB.llk.entity.PuzzleRecord;
import cn.pzhuWEB.llk.entity.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.ArrayList;
import java.util.List;

public interface PuzzleInfoDao {
    /**
     * 0 1 拖拽模式、点击模式
     * 1、2、3 简单、中级、高级
     *
     * 更新01游戏排行榜
     * 更新02游戏排行榜
     * 更新03游戏排行榜
     *
     * 更新11游戏排行榜
     * 更新12游戏排行榜
     * 更新13游戏排行榜
     */

    /**
     * 查询用户相应模式下是否有数据
     * @param puzzleRecord
     * @return
     */
    String queryCompTime(PuzzleRecord puzzleRecord);

    /**
     * 插入对应的做题日志
     * @param puzzleRecord
     */
    void insertPuzzleGrade(PuzzleRecord puzzleRecord);

    /**
     * 更新对应用户的排行榜
     * @param puzzleRecord
     */
    void updatePuzzleRank(PuzzleRecord puzzleRecord);


    /**
     * 插入对应的排行，针对新用户，第一次玩相应模式
     * @param puzzleRecord
     */
    void insertPuzzleRank(PuzzleRecord puzzleRecord);

    /**
     * 查询本人最高的排名
     * @param puzzleRecord
     * @return
     */
    Integer findGradeByTimeRank(PuzzleRecord puzzleRecord);

    @Select("select u.college,u.stuName,u.stuCard,u.major,p.stuCompleteTime from puzzlerank p,user u where p.stuCard=u.stuCard and p.pattern=#{pattern} and p.level=#{level} order by stuCompleteTime asc")
    List<User> findGradeByPatternAndLevel(@Param(value = "pattern") String pattern,@Param(value = "level") int level);

    @Select("select * from imagepath")
    ArrayList<ImagePath> findAllPhoto();
}
